/**
 * <ol>
 *     <li>当应用向 Initiation Dispatcher 注册具体的事件处理器时, 应用会标识出该事件处理器希望其在某个事件发生时向其通知的该事件, 该事件与 Handle 关联</li>
 *     <li>Initiation Dispatcher 会要求每个事件处理器向其传递内部的 Handle, 该 Handle 向操作系统标识了 Event Handler</li>
 *     <li>当所有的事件处理器注册完毕后, 应用会调用 handle_event 方法来启动 Initiation Dispatcher 的事件循环. 这时, Initiation Dispatcher 会将每个注册的事件管理器
 *     的 Handle 合并起来, 并使用同步事件分离器等待这些事件的发生. 比如说 TCP 协议层会使用 select 同步事件分离器操作来等待客户端发送的数据到达连接的 socket handle 上</li>
 *     <li>当与某个事件源对应的 Handle 变为 ready 状态时, (比如 TCP Socket 变为等待读状态时), 同步事件分离器就会通知 Initiation Dispatcher</li>
 *     <li>Initiation Dispatcher 会触发事件处理器的回调方法, 从而响应这个出于 ready 状态的 Handle. 当事件发生时, Initiation Dispatcher 会将被事件源激活的 Handle 作为 key 来寻找并
 *     分发恰当的事件处理器回调方法</li>
 *     <li>Initiation Dispatcher 会回调事件处理器的 handle_events 回调方法来执行特定于应用的功能(开发者实现的业务功能), 从而响应这个事件, 所发生的事件类型可以作为该方法参数并被
 *     该方法内部使用来执行额外的特定于服务的分离和分发</li>
 * </ol>
 *
 * @author LiKe
 * @date 2022-10-24 12:31
 */
package cn.caplike.demo.repository.design.pattern.reactor;